package com.chenfan.mcn.model;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;

import com.chenfan.mcn.constant.NumberCst;
import com.chenfan.mcn.enums.BusinessTypeEnum;
import lombok.Data;

/**
 * <p>
 * 业务数据转移日志表
 * </p>
 *
 * @author wulg
 * @since 2021-10-22
 */
@Data
@TableName("business_data_move_log")
public class BusinessDataMoveLog implements Serializable {


    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 任务号
     */
    @TableField("task_code")
    private String taskCode;

    /**
     * 业务类型-数组字符串
     */
    @TableField("business_type")
    private String businessType;

    /**
     * 执行状态：0执行中、1执行成功、2执行失败
     */
    @TableField("status")
    private Integer status;

    /**
     * 源用户ID
     */
    @TableField("source_user_id")
    private Long sourceUserId;

    /**
     * 源用户名称
     */
    @TableField("source_user_name")
    private String sourceUserName;

    /**
     * 源部门ID
     */
    @TableField("source_department_id")
    private Long sourceDepartmentId;

    /**
     * 源公司ID
     */
    @TableField("source_company_id")
    private Long sourceCompanyId;

    /**
     * 目标用户ID
     */
    @TableField("target_user_id")
    private Long targetUserId;

    /**
     * 目标用户名称
     */
    @TableField("target_user_name")
    private String targetUserName;

    /**
     * 目标部门ID
     */
    @TableField("target_department_id")
    private Long targetDepartmentId;

    /**
     * 目标部门名称
     */
    @TableField(exist = false)
    private String targetDepartmentName;

    /**
     * 目标公司ID
     */
    @TableField("target_company_id")
    private Long targetCompanyId;

    /**
     * 开始时间
     */
    @TableField("start_time")
    private Date startTime;

    /**
     * 结束时间
     */
    @TableField("end_time")
    private Date endTime;

    /**
     * 租户ID
     */
    @TableField("tenant_id")
    private Long tenantId;

    /**
     * 操作人ID
     */
    @TableField("operator_id")
    private Long operatorId;

    /**
     * 操作人姓名
     */
    @TableField("operator_name")
    private String operatorName;

    /**
     * 转移数量
     */
    @TableField("count")
    private Long count;

    /**
     * 转移结果集合{业务类型、业务名称、业务ID集合）
     */
    @TableField("result")
    private String result;

    /**
     * 业务类型名称
     */
    @TableField(exist = false)
    private String businessTypeName;

    /**
     * 状态名称
     */
    @TableField(exist = false)
    private String statusName;

    public String getBusinessTypeName()  {
        return BusinessTypeEnum.joinBusinessTypeName(this.businessType);
    }

    public String getStatusName(){
        if(NumberCst.ZERO.equals(this.status)) {
            return "执行中";
        }else if(NumberCst.ONE.equals(this.status)) {
            return "执行成功";
        }
        if(NumberCst.TWO.equals(this.status)) {
            return "执行失败";
        }
        return "未知";
    }
}
